Contextual zoom

ABSTRACT

Disclosed herein is a system and method for allowing a user to zoom in and out on a large data set and maintain resolution and understanding on the data. The system monitors how the user uses the data and also detects the user&#39;s actions with respect to zooming on the data. Based on the user&#39;s interactions and the type of data the system determines for each zoom level what data to display to the user on the display and if the display needs to be modified to maintain usability of the data. In some scenarios a display management component may change the format of the data such that the user may better understand the data.

BACKGROUND

Users typically interact with large data sets in a variety of ways.These data sets are often presented or displayed to the user on adisplay in a manner that prevents the user from viewing all of the datain the data set or source. In order to interact with this data and seethe entirety of the data the user either scrolls across the display tosee the information or zooms the display in or out to see more or lessof the data in the display. Typically the data that is displayed to theuser is simply a larger or smaller version of the data relative to theprior size that was previously displayed.

However, when users zoom data in or out they often lose the ability toretain resolution on the data. This is because as they zoom out on adata set the data becomes so small that the user cannot read orunderstand the data that is presented. Even users who are familiar withthe data set may have difficulty locating or understanding the data whenthe resolution of the data is lost due to the zooming action. Thisinability to view or use the data is frustrating and causes significanttime to be wasted by users as they struggle to understand the data thatis before them.

SUMMARY

The following presents a simplified summary of the disclosure in orderto provide a basic understanding to the reader. This summary is not anextensive overview of the disclosure and it does not identifykey/critical elements of the invention or delineate the scope of theinvention. Its sole purpose is to present some concepts disclosed hereinin a simplified form as a prelude to the more detailed description thatis presented later.

The present example provides a system and method for allowing a user tozoom in and out on a large data set and maintain resolution andunderstanding on the data. The system monitors how the user uses thedata and also detects the user's actions with respect to zooming on thedata. Based on the user's interactions and the type of data the systemdetermines for each zoom level what data to display to the user on thedisplay. This data could be a summary of the data, a portion of the dataor certain useful information contained in the data. The system can alsobased on the monitored activity and the contextual understanding of thedata reorder the data that is presented to the user on the display. Forexample header rows can be presented to the user instead of the actualdata, or certain less valuable or less informative rows may be removedfrom the display as the user changes the zoom level. A displaymanagement component uses this information to render a display of thedata to the user such that the information displayed to the user ispresented in a manner that allows the user to understand at some levelthe underlying data. In some scenarios the display management componentmay change the format of the data such that the user may betterunderstand the data. For example data may be converted from text to agraphical format when the user zooms out on a spreadsheet.

Many of the attendant features will be more readily appreciated as thesame becomes better understood by reference to the following detaileddescription considered in connection with the accompanying drawings.

DESCRIPTION OF THE DRAWINGS

The present description will be better understood from the followingdetailed description read in light of the accompanying drawings,wherein:

FIG. 1 is as block diagram illustrating components of a contextualzooming system according to one illustrative embodiment.

FIG. 2 is a flow diagram illustrating a process executed by the displaymanagement component for displaying the data at various zoom levels.

FIG. 3 is an exemplary screen shot illustrating data presented in aspreadsheet at a maximum zoom.

FIG. 4 is an exemplary screen shot illustrating data presented in aspreadsheet at an intermediate zoom level.

FIG. 5 is an exemplary screen shot illustrating a display of data in thespreadsheet where the data has been reorder or reduced.

FIG. 6 is an exemplary screen shot illustrating a display where the datahas been modified to show summary data of the underlying table.

FIG. 7 illustrates a component diagram of a computing device accordingto one embodiment.

Like reference numerals are used to designate like parts in theaccompanying drawings.

DETAILED DESCRIPTION

The detailed description provided below in connection with the appendeddrawings is intended as a description of the present examples and is notintended to represent the only forms in which the present example may beconstructed or utilized. The description sets forth the functions of theexample and the sequence of steps for constructing and operating theexample. However, the same or equivalent functions and sequences may beaccomplished by different examples.

When elements are referred to as being “connected” or “coupled,” theelements can be directly connected or coupled together or one or moreintervening elements may also be present. In contrast, when elements arereferred to as being “directly connected” or “directly coupled,” thereare no intervening elements present.

The subject matter may be embodied as devices, systems, methods, and/orcomputer program products. Accordingly, some or all of the subjectmatter may be embodied in hardware and/or in software (includingfirmware, resident software, micro-code, state machines, gate arrays,etc.) Furthermore, the subject matter may take the form of a computerprogram product on a computer-usable or computer-readable storage mediumhaving computer-usable or computer-readable program code embodied in themedium for use by or in connection with an instruction execution system.In the context of this document, a computer-usable or computer-readablemedium may be any medium that can contain, store, communicate,propagate, or transport the program for use by or in connection with theinstruction execution system, apparatus, or device.

The computer-usable or computer-readable medium may be for example, butnot limited to, an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, apparatus, device, or propagationmedium. By way of example, and not limitation, computer-readable mediamay comprise computer storage media and communication media.

Computer storage media or computer readable storage media includesvolatile and nonvolatile, removable and non-removable media implementedin any method or technology for storage of information such ascomputer-readable instructions, data structures, program modules, orother data. Computer storage media includes, but is not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand may be accessed by an instruction execution system. Note that thecomputer-usable or computer-readable medium can be paper or othersuitable medium upon which the program is printed, as the program can beelectronically captured via, for instance, optical scanning of the paperor other suitable medium, then compiled, interpreted, of otherwiseprocessed in a suitable manner, if necessary, and then stored in acomputer memory.

Communication media typically embodies computer-readable instructions,data structures, program modules or other data in a modulated datasignal such as a carrier wave or other transport mechanism and includesany information delivery media. This is distinct from computer storagemedia. The term “modulated data signal” can be defined as a signal thathas one or more of its characteristics set or changed in such a manneras to encode information in the signal. By way of example, and notlimitation, communication media includes wired media such as a wirednetwork or direct-wired connection, and wireless media such as acoustic,RF, infrared and other wireless media. Combinations of any of theabove-mentioned should also be included within the scope ofcomputer-readable media, but not computer storage media.

When the subject matter is embodied in the general context ofcomputer-executable instructions, the embodiment may comprise programmodules, executed by one or more systems, computers, or other devices.Generally, program modules include routines, programs, objects,components, data structures, and the like, that perform particular tasksor implement particular abstract data types. Typically, thefunctionality of the program modules may be combined or distributed asdesired in various embodiments.

FIG. 1 is a block diagram illustrating components of a contextual zoomsystem 100 according to an illustrative example. System 100 includes adata source 110, a monitoring component 120, a context identificationcomponent 130 and a display management component 140. System 100connects with a device such as device 160 having a display 170.

Data source 110 is any data that can be displayed to the user in astructured manner. Typically this structured manner is when the data ispresented to a user in a table form, such as in a spreadsheet. When thedata source 110 is presented in a table the data source 110 may haveheader rows that contain information related to the data contained inthat column. This information can for example explain that all of theinformation in a particular column relates to a specific item ofinformation. Likewise in a table each row typically represents an entryrelated to a single record. Each cell in the table represents a singlepiece of data or entry for the record. Thus, when a user views the tableon a display, such as display 170, they are able to view a record ormultiple records in the table and readily understand what the meaning ofeach entry in the record. It should be noted that in some tables theheaders may be at the beginning of a row and the columns represent asingle record. In other tables both the columns and the rows may containheaders such as with a summary table or comparison table (e.g. comparingvarious sales of items over a number of years, or highlightingperformance statistics for various groups at different companies). Whenviewing a large dataset having many rows and columns it is oftenimpossible to see all of the data contained in the table. This inabilityto view the table may be caused by the size of the display being used bythe user, the sheer number of entries in the table, or other reasons.

As mentioned above, data source 110 does not have to be a table, but canbe any type of data that is used by a user that can be presented to theuser in a structured manner. While the present discussion discusses thedata source as a structured data source, the ideas and embodiments canalso be applied to unstructured data which can be visually represented.For example, common properties for entities in the unstructured datacould be displayed when the data is zoomed out. In some embodiments thedata source 110 is photos that the user has stored. These photos mayhave associated metadata with them that permits the system to presentthe photos to the user in a structured manner. For example, the photosmay include data tags indicating where the photo was taken, when thephoto was taken, who is in the photo, etc. In some embodiments the datasource 110 is a document, such as a word processing document. In someembodiments the data source 110 is a presentation document such as aPowerPoint presentation. In each of these examples the data source 110can be such a large amount of data that the user is unable to view theentirety of the data set at once and have the data displayed in alegible and understandable manner.

As the present disclosure uses structured data as the data source 110that is displayed to the user the way that data is displayed can bemanipulated by the system to provide the user with higher level views ofthe data while maintaining the a level of understanding about theunderlying data for the user. These higher level views can be providedto the user through zooming actions. These actions make the associateddata either larger or smaller in size to the user.

Monitoring component 120 is a component of the system that monitors theuser's activity with the data source 110. The monitoring component 120detects how the user is interacting with the data in the data source110. The user may perform any number of actions on the data and each ofthese actions may be useful for the system to be aware of. For examplethe user may be editing a particular column in a table over a period oftime. This can be noted by the monitoring component 120 and then laterused as an indication of an importance of the column to the user. Otherinteractions that may be captured by the monitoring component 120include editing actions, zooming actions, navigation actions, etc.Editing actions can include actions taken by the user to change ormodify the data in the data source 110. Depending on the data in thedata source 110 different types of editing actions may be permitted.Zooming actions are actions taken by the user to either expand out theirview of the data or narrow down their view of the data. When dealingwith a zooming action the monitoring component 120 may make note ofwhere the user was in the data when the action was taken and where theuser ended up following the action. This information provides someinsight as to the level of detail that the user was looking for at thatmoment in time. Navigation actions are actions taken by the user to movearound within the data source 110. Navigation actions can includechanging pages, jumping pages, panning, scrolling, advancing, movingbetween tabs, etc. within the data source 110. Each of the variousactions can be collected independently of each other by the monitoringcomponent 120 or they can be collected as a single event by themonitoring component 120. Each action can be used to assist in thedetermination of what information in the data source 110 is important tothe user.

Monitoring component 120 also is configured to provide the detectedzooming actions to the display management component 140 as the userzooms. The data provided to the display management component 140 relatedto the zooming action may be different data than is used to create ormaintain the profile. In some embodiments the monitoring component 120may capture additional information related to the zooming action toprovide to the display management component 140. This information caninclude the method of the zooming action (e.g. using keyboard keys,mouse wheel, or gestures), the rate of the zooming action (e.g.extremely fast, slow, etc.), the location of a cursor when the zoomingaction occurred, and/or where the zooming action occurred on thedisplay.

This information that is collected by the monitoring component 120 isstored in a profile 126 in storage 125. The profile 126 may be a profilethat is specific to the user, may be specific to the data source 110, orboth. In some embodiments, multiple profiles may be maintained for asingle data source 110. In some embodiments the same profile may bemaintained for more than one data source 110. This may occur when thetwo data source 110 s are related in some way (e.g. two versions). Inother embodiments the profile 126 may be augmented or enhanced withinformation originating from other profiles. For example, the profile126 can be augmented with profile information for the user from theuser's own social networking profiles. This information can furtherassist in the determination of the contextual zoom.

Context identification component 130 is a component of the system thatis configured to identify contextual information within the data source110 that allows for the system to display contextually relevantinformation when the user zooms their view of the data in the datasource 110. Contextual information can be any information in the datasource 110 that allows for the user to understand at least a portion theunderlying data when the user has zoomed out from the data to a levelwhere the data in the data source 110 cannot be viewed completely.

To identify the contextual information in the data source 110 thecontext identification component 130 reads or otherwise analyzes theinformation in the data source 110. The contextual identificationcomponent can implement a semantic analysis of the data source 110 toidentify or understand what the data source 110 is about. Using semanticanalysis the contextual identification component can identify words andphrases in the data source 110 that are informative about the content ofthe data source 110. Depending on the type of data source 110 thecontextual identification component may use or access metadata relatedto the data source 110 to identify additional contextual information.For example, when the data source 110 is a table or spreadsheet thecontextual identification component can identify the headers of thetable and can also identify any tabs that are associated with the tableor spreadsheet. The context identification component 130 may furtheridentify any words associated with the headers and tabs to gain furthercontextual understanding of the data source 110. This information can bestored for the data source 110 in storage 125 in a separate profile forthe data source 110 or in the profile 126 that was created or generatedby the monitoring component 120 for the user or the data source 110.

The display management component 140 is a component of the system thatis configured to determine and manage the arrangement of the display ofthe data in the data source 110 to the user through the display 170 ofdevice 160. The display management component 140 receives from themonitoring component 120 information indicating that the user ischanging the zoom level of the data in the data source 110 that they areviewing on the display. This zoom level change can be either a zoom inor a zoom out. The display management component 140 uses the informationreceived from the monitoring component 120 about the changed zoom levelto begin a process for determining how the display should be updated toreflect the user's desired change in the zoom level. The processexecuted by the display management component 140 for displaying isillustrated by the flow diagram of FIG. 2.

As mentioned the process of adjusting the zoom level of the data source110 occurs when the user indicates their desire to change the zoom levelon the display. This is illustrated at step 210. The user can indicatethis desire to change the zoom level by performing an action on thedisplay device. This action can be moving a scroll bar such as scrollbar 390 illustrated in FIG. 3 in a direction that indicates eitherincreased or decreased zoom level, can be a selection of an increasezoom or decrease zoom buttons (such as a + or − button), selecting adesired zoom level (such as from a drop down of available zoom levels),using a gesture such as a pinch on a touch screen to indicate the desireto change zoom level or any other method provided on the display forchanging the zoom level. It should be noted that in FIG. 3 the table 300is at maximum zoom as indicated by scroll bar 390. However, the scrollbar could be at any particular zoom level or location. Additionally oralternatively the user may indicate a desire to change the zoom level byproviding an input from a keyboard or a mouse that indicates the levelof the desired zoom. The monitoring component 120 captures thisinformation and provides this information to the display managementcomponent 140.

The display management component 140 takes the information from themonitoring component 120 and determines whether the user is zooming inor zooming out. This is illustrated at step 215. Depending on the desireto zoom in or zoom out the display management component 140 can performdifferent functions in managing the display that will be displayed tothe user.

If the user indicated a desire to zoom out from the current view thedisplay management component 140 follows along the path indicated byline 201. If the user indicated a desire to zoom in from the currentview the display management component 140 follows along the pathindicated by line 202. The discussion herein will first proceed alongthe path indicated by line 201. For purposes of this discussion it willbe presumed the data source 110 is a table. However, any other datasource 110 may be used and the various terms and features of a table canbe substituted with the features appropriate to the data source 110.

The display management component 140 first determines the minimum sizeof the content of the data source 110 that is readable by the user. Thisis illustrated at step 220. In the case of a table the displaymanagement component 140 takes into account the length of the content ineach cell, the font size of the content, as well as any constraints thathave been placed on the system by the user or from the table author. Insome embodiments the display management component 140 may also receiveinformation related to the size and type of display the user is using.Additional information that is informative with regards to the abilityto display data from the data source 110 may also be collected at thispoint.

After determining the minimum size of the content that is displayablethe display management component 140 determines if actual data can bedisplayed or if summary data should be displayed. This is illustrated atstep 222. At this step the display management component 140 takes intoaccount the whole of the data source 110 as well as the various featuresdetermined at step 220 above. In some embodiments the display managementcomponent 140 accesses the profile 126 at this step and uses theinformation contained in the profile 126 to assist in making thedecision regarding whether to display summary data or data itself.Further, the display management component 140 can also use theinformation captured by the monitoring component 120 related to how theuser changed the zoom level. That is the rate that the user changed thezoom level may be indicative of what the user desires to see. A fastzoom out is likely indicative of the desire to give up detailedinformation in order to get to a specific location or higher levelinformation. This can, for example, be indicative of a desire forsummary information as opposed to the actual data. This analysis can beequally applicable when the user changes the zoom level by a largepercentage, for example going from 100% zoom level to 10% zoom level.Conversely if the user is very slowly changing zoom level or onlyslightly changing the zoom level this can be indicative that the userstill prefers to see data. Once the external factors are considered thedisplay management component 140 determines whether to display thesummary data or at least a portion of the actual data. In one example,the display management component 140 considers if the available space onthe display is sufficient that it can show a handful of cells from alarge table or if a table summary would be more meaningful to the userthan the handful of cells.

If the display management component 140 determines that at least aportion of the actual data should be displayed to the user the processcontinues along path 203. At step 224 the display management component140 begins to consider what rearrangement of the cells in the table arerequired or desirable. Starting from FIG. 3, assuming a zoom out, thedisplay management component 140 identifies each of the headers 301-309in the table as well as each of the rows 351-356. It should be notedthat the header and rows may have been previously identified by thecontent identification component. Also illustrated in FIG. 3 is a numberof cells collectively referred to as cells 370 (not separately labeled).It should be noted that FIG. 3 only illustrates the portion of the datasource 110 that makes up table 300. Additional cells, headers and rowsare present in the table 300, but are not visible to the user directly.These additional cells, headers and rows may be brought into viewthrough the user of slider bars and other forms of scrolling.

If for example the user were only slightly zooming out from the currentview illustrated in FIG. 3 the display management component 140 maydetermine that no rearrangement of the data displayed is necessary. Thismay be caused by the user simply expanding the view to see an additionalrow or two or an additional header or two. In some embodiments the usermay be able to provide an input to the system indicating that for aparticular zoom that the user does not wish to have the display of thedata rearranged. If the display management component 140 determines thatno changes are necessary the data is rendered at step 230 and steps 225and 226 are omitted.

If the display management component 140 determines that the datadisplayed should be rearranged or otherwise modified. At this step thedisplay management component 140 determines how and what data to displayto the user based on the information that is available to the systemabout the table and the user's profile. The display management component140 can receive information from the monitoring component 120 throughthe profile 126 that indicates what portions of the data that the useris interacting with at the time of the zoom request. This information inthe profile can include, in the case of a table, the columns and rowsthe user was interacting with, the edit history of each of the rows, orany other information related to how the user actually interacts withthe table. For other data source 110 s the display management component140 may receive information about each of the items in the data source110 and how the user interacts with them. The display managementcomponent 140 may also receive information from the contextidentification component 130 at this step to assist in determining ifthere is any additional information in the data source 110 that shouldbe maintained or surfaced to the user in the zoom process. Thisinformation is combined with the other information including the minimumdisplay size for a data item to determine the layout of the display.

Returning to the table of FIG. 3 and the user's intent to zoom out thedisplay management component 140 determines that the way the columns areto be displayed should be changed. This is illustrated at step 225 ofFIG. 2. The display management component 140 determines based on thetable width and the minimal cell size for each column where to placeeach of the columns of the table. The display management component 140considers placing the columns one by one, and then wrapping the nextcolumn to the “next line” if it that column is not going to fit in theavailable table width. In some embodiments the minimal cell size ismodified such that the displaying table is in a rectangular shape,fitting in the boundary of the table. Alternatively, the boundary of thetable could be adjusted accordingly to permit the column to fit. In someembodiments the display management component 140 identifies thosecolumns that the user has indicated as most useful to them. Thisinformation can come from the profile 126 or from direct interactionfrom the user. Based on this information related to the usefulness ofthe columns the display management component 140 can further alter thedisplay of the columns. For example, the display management component140 can determine that certain columns can be omitted from the displayas they are not informative. Alternatively the display managementcomponent 140 can determine that the important columns should bedisplayed first or predominately and the other columns should be placedafter these columns. The display management component 140 can thendetermine that an indication that the columns have been rearranged inthe display should also be presented to the user.

Once the number and arrangement of the columns has been determined thedisplay management component 140 then proceeds to determine the numberof rows that can be displayed in the table. This is illustrated at step226. Based on the arrangement of the columns determined at step 225 andtaking into account the height of the table determined at step 220 thedisplay management component 140 determines the optimal number of rowsthat can be displayed for the zoom level. The number of rows that can bedisplayed can be any number of rows including zero. In other words thedisplay management component 140 determines if all of the rows can beshown, some of the rows can be shown or if only the column headers canbe shown. When determining that only some of the rows can be shown thedisplay management component 140 can use the information from theprofile 126 to determine which of the rows to display and which rows toremove or not display. Again this information may be based on the waythe user uses the data in the table or based on other semantic analysisof the data that can indicate which rows are more or less informativeabout the overall table.

Once the display management component 140 has determined the specificway the data should be rendered for the particular zoom level, thedisplay management component 140 renders the image and passes that imageto the display. This is illustrated at step 230. In some embodiments thedisplay may be rendered to a file for later retrieval by the user on thedevice.

FIG. 4 and FIG. 5 illustrate two potential zoom levels that the user mayhave selected as indicated by slider bar 390. FIG. 4 illustrates onintended zoom level and FIG. 5 illustrates a second intended zoom level.Both FIGS. 4 and 5 illustrate examples of a table where at least aportion of the data from the table is still displayed to the user atthese zoom levels. In FIG. 4 the display management component 140 hasdetermined that 27 of the headers can be displayed (which may representall of the columns in the table) and that two of the rows may bedisplayed as well as sample rows. The display management component 140in making this determination determined that that table width onlypermitted 9 headers to be displayed across and therefore wrapped theheaders in three rows of headers for the full 27 headers. In FIG. 4 thedisplay management component 140 determined to display the first tworows of the table as the sample rows. However, as discussed above thedisplay management component 140 may select other rows to display basedon the profile or other information. For example the rows may be thelast two rows that were modified or the two rows that are the mostsimilar to each other in terms of data. In FIG. 5 the display managementcomponent 140 has determined that only the header columns can bedisplayed and that no sample rows can be displayed at the zoom level.Further, the display management component 140 determined that not all ofthe column headers could be displayed. As such, the first 20 headers areshown displayed. The additional column headers are indicated to the userby the space between the bottom of the table 300 and the bottom of theheader row 505 and labeled as 510. The user can view the additionalheader rows through the use of a scroll bar or other means (notillustrated). Again as mentioned previously, the display managementcomponent 140 may select other headers to display in header rows 501-505based on the information in the profile 126 or other information madeavailable to it about the importance of the columns or headers. Forexample the display management component 140 may move header 310 to theposition that is currently held by header 302 if the display managementcomponent 140 determined that header 310 is more important than header302. Further, headers that are not displayed in FIG. 5 currently couldbe brought into view if they are determined to be more important thanthe currently displayed headers.

In embodiments where the data source 110 is not a table, steps 225 and226 can be combined into a single step or process. With other datasource 110 s the display management component 140 determines how much ofthe data source 110 can be displayed at the new zoom level. Once that isknown by the data management component information from the profile 126and the context identification component 130 are used to determine whatinformation to display to the user in response to the requested zoomlevel. For example, in a word processing document the display managementcomponent 140 may determine that the first page of the document and thelast page the user was working on are the pages to display to the userand in response to the zooming action adjust the display to show thethese two pages without the other pages in between shown or may providean visual indicator of the other pages is available. In an example wherethe data source 110 is pictures the display management component 140 mayreceive from the context identification component 130 informationrelated to the subjects of the photos. In response to the zooming actionthe display management component 140 may only show one photo for eachsubject in the data source 110, or may choose to show only photos havinga subject that appears more frequently than others.

However, if at step 222 the display management component 140 determinedthat the zoom level requires or indicates that summary data should beshown the process continues along line 204. At step 240 the displaymanagement component 140 determines what summary information that shouldbe shown to the user. This information to be displayed can be based onthe information surfaced by the context identification component 130 orfrom metadata associated with the data source 110. In the table examplethe summary data can include information related to the name of thetable, the number of rows in the table, and the number of columns in thetable. FIG. 6 illustrates one example of a table summary 600 that thedisplay management component 140 may cause to be rendered when it isdetermined that summary data is appropriate for the zoom level.Depending on the type of the data source 110 other data may be shown assummary data. In the example where a table includes multiple tabs at acertain zoom level the summary may provide summary information for eachof the tabs displayed in a manner to allow the user to determine whichtab contains the table that the user is interested in viewing further.The arrangement of these tables in that view may not necessarily alignwith the order of the tabs in the underlying spreadsheet. In someembodiments instead of displaying written data about the underlyingtable such as the aforementioned tabs, columns and name, the displaymanagement component 140 may cause a graph or other visual display to berendered. The display management component 140 can utilize features inthe underlying program to generate this visual representation. In thisway the display management component 140 is able to leverage theunderlying program or application that is used to for the data source110 to better provide the summary information to the user.

Following the determination of the summary information the displaymanagement component 140 causes the summary information to be displayedto the user on the display. This is illustrated at step 245. In someembodiments the summary information may be stored as file that can bedisplayed at a later time.

Returning back to the top of FIG. 2 and following along path 202 theprocess that occurs when the user is zooming in is now discussed. Theprocess of zooming in is similar to the process of zooming out with theexception that instead of making a determination of what data can beremoved from the view that is presented to the user, the system nowdetermines what information can or should be added or surfaced to theuser as they zoom in.

At step 270 the display management component 140 again first determinesthe minimum size of the content of the data source 110 that is readableby the user. In the case of a table, such as the table of FIGS. 3-6, thedisplay management component 140 takes into account the length of thecontent in each cell, the font size of the content, as well as anyconstraints that have been placed on the system by the user or from thetable author. In some embodiments the display management component 140may also receive information related to the size and type of display theuser is using. Additional information that is informative with regardsto the ability to display data from the data source 110 may also becollected at this point. For purposes of this portion of the discussionit will be assumed that the user started at the summary table of FIG. 6.However, the process is the same regardless of where in the zoom levelthe user began.

After determining the minimum size of the content that is displayablethe display management component 140 determines if actual data can bedisplayed or if summary data should continue to be displayed. This isillustrated at step 272. At this step the display management component140 takes into account the whole of the data source 110 as well as thevarious features determined at step 270 above. In some embodiments thedisplay management component 140 accesses the profile 126 at this stepand uses the information contained in the profile 126 to assist inmaking the decision regarding whether to continue to display summarydata or to display the data itself. Further, the display managementcomponent 140 can also use the information captured by the monitoringcomponent 120 related to how the user changed the zoom level. That isthe rate that the user changed the zoom level may be indicative of whatthe user desires to see. A fast zoom in is likely indicative of thedesire to get to the detailed information right away. This analysis canbe equally applicable when the user changes the zoom level by a largepercentage, for example going from 10% zoom level to 100% zoom level.Conversely if the user is very slowly changing zoom level or onlyslightly changing the zoom level this can be indicative that the user isattempting to locate the specific area of data that the user may want tothen zoom in on. Once the external factors are considered the displaymanagement component 140 determines whether to continue to display thesummary data or to begin to display a least a portion of the actualdata. In one example, the display management component 140 considers ifthe available space on the display is sufficient that it can show ahandful of cells from a large table or if continuing to remain as atable summary would be more meaningful to the user than the handful ofcells.

After determining whether to continue to display the summary data or todisplay at least a portion of the actual data in the display the displaymanagement component 140 follows along the corresponding path for theeither rendering the summary data or the actual data. Steps 280, 282 and284 are the steps executed when the display management component 140determines to display at least a portion of the actual data. These stepsare substantially similar to the steps discussed above with regards tosteps 225, 226 and 230 above. The primary difference between the twopaths is the direction of the zoom. Steps 286 and 288 are the stepsexecuted when the display management component 140 determines tocontinue to display summary data to the user. These steps aresubstantially similar to steps 240 and 245 discussed above. Again theprimary difference is the direction of the zoom whereby more summarydata may be shown to the user as they zoom in.

The process discussed above with respect to FIG. 2 is repeated each timethe user indicates a desire to change the current viewing zoom level ofthe display. Again while the above discussion focused on displayinginformation to the user from a table the discussion above is equallyapplicable to other types of data displays, such as documents,presentations, photos, contacts, etc. Further, additional informationcan be used to assist in determining whether to display the data orsummary to the user, such as screen size, display resolution, devicetype, accessibility options etc. This information can cause the displaymanagement component 140 to show a summary display on one device and atleast a portion of the data on a different device for the same zoomlevel.

FIG. 7 illustrates a component diagram of a computing device accordingto one embodiment. The computing device 700 can be utilized to implementone or more computing devices, computer processes, or software modulesdescribed herein. In one example, the computing device 700 can beutilized to process calculations, execute instructions, receive andtransmit digital signals. In another example, the computing device 700can be utilized to process calculations, execute instructions, receiveand transmit digital signals, receive and transmit search queries, andhypertext, compile computer code, as required by the system of thepresent embodiments. Further, computing device 700 can be a distributedcomputing device where components of computing device 700 are located ondifferent computing devices that are connected to each other throughnetwork or other forms of connections. Additionally, computing device700 can be a cloud based computing device.

The computing device 700 can be any general or special purpose computernow known or to become known capable of performing the steps and/orperforming the functions described herein, either in software, hardware,firmware, or a combination thereof.

In its most basic configuration, computing device 700 typically includesat least one central processing unit (CPU) 702 and memory 704. Dependingon the exact configuration and type of computing device, memory 704 maybe volatile (such as RAM), non-volatile (such as ROM, flash memory,etc.) or some combination of the two. Additionally, computing device 700may also have additional features/functionality. For example, computingdevice 700 may include multiple CPU's. The described methods may beexecuted in any manner by any processing unit in computing device 700.For example, the described process may be executed by both multipleCPU's in parallel.

Computing device 700 may also include additional storage (removableand/or non-removable) including, but not limited to, magnetic or opticaldisks or tape. Such additional storage is illustrated in FIG. 7 bystorage 706. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions, data structures, program modules or other data. Memory 704and storage 706 are all examples of computer storage media. Computerstorage media includes, but is not limited to, RAM, ROM, EEPROM, flashmemory or other memory technology, CD-ROM, digital versatile disks (DVD)or other optical storage, magnetic cassettes, magnetic tape, magneticdisk storage or other magnetic storage devices, or any other mediumwhich can be used to store the desired information and which canaccessed by computing device 700. Any such computer storage media may bepart of computing device 700.

Computing device 700 may also contain communications device(s) 712 thatallow the device to communicate with other devices. Communicationsdevice(s) 712 is an example of communication media. Communication mediatypically embodies computer readable instructions, data structures,program modules or other data in a modulated data signal such as acarrier wave or other transport mechanism and includes any informationdelivery media. The term “modulated data signal” means a signal that hasone or more of its characteristics set or changed in such a manner as toencode information in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. The term computer-readable media asused herein includes both computer storage media and communicationmedia. The described methods may be encoded in any computer-readablemedia in any form, such as data, computer-executable instructions, andthe like.

Computing device 700 may also have input device(s) 710 such as keyboard,mouse, pen, voice input device, touch input device, etc. Outputdevice(s) 708 such as a display, speakers, printer, etc. may also beincluded. All these devices are well known in the art and need not bediscussed at length. Those skilled in the art will realize that storagedevices utilized to store program instructions can be distributed acrossa network. For example a remote computer may store an example of theprocess described as software. A local or terminal computer may accessthe remote computer and download a part or all of the software to runthe program. Alternatively the local computer may download pieces of thesoftware as needed, or distributively process by executing some softwareinstructions at the local terminal and some at the remote computer (orcomputer network). Those skilled in the art will also realize that byutilizing conventional techniques known to those skilled in the art thatall, or a portion of the software instructions may be carried out by adedicated circuit, such as a DSP, programmable logic array, or the like.

In summary the present disclosure provides a system for providing acontextual zoom of a data source, comprising a display device configuredto render a display of at least a portion of the data source. Amonitoring component configured to detect at least one zooming actionfrom a user on the data source. A context identification componentconfigured to identify contextual information from the data source. Thesystem further includes a display management component configured tomodify the display based at least in part on the at least one zoomingaction and at least a portion of the contextual information. The displaymanagement component can be configured to modify the display from actualdata from the data source to a summary of the data in the data source,reorder the data in response to zooming action, or remove at least aportion of the data from the display in response to the zooming action.The display management component may be further configured to determinea minimum cell size that can be displayed when the data is a table andthe determine based on that cell size whether to display actual data,summary data or other information.

Further disclosed above is a method for displaying data from a datasource on a display device. The system displays on the display devicedata from the data source at a first zoom level. Next the systemreceives an indication from a user of a change of the zoom level fromthe first zoom level to a second zoom level. It then determines if thedisplay of the data should be modified based on the second zoom level.Finally it modifies the display of the data by changing at least aportion of the display such that the data is displayed at the secondzoom level differently from the first zoom level. The modifications caninclude reordering data, summarizing the data or changing the format ofthe data that is displayed to the user through the display.

The invention claimed is:
 1. A system for providing a contextual zoom ofa data source, the system comprising: a display device configured torender a display of at least a portion of the data source; one or morecomputer processors; and persistent data storage having stored thereincomputer executable instructions which, when executed on the one or morecomputer processors, cause the system to: detect at least one zoomingaction on the data source; determine whether the zooming action is azoom in or a zoom out; identify contextual information from the datasource, the identified contextual information including at least acontent and size of the data source, dimensions of the display, andinformation in the data source that enables understanding a portion ofunderlying data from the data source when displayed at a zoom level atwhich the data of data source cannot be viewed completely; based on thezooming action and on the identified contextual information: determinean amount of actual data to display; determine a minimum size ofdisplayed content that is to be displayed; determine an amount ofsummary data to display, the summary data derived from a portion ofactual data but displayed in lieu of the portion of actual data and thesummary data determined at least in part from the information in thedata source that enables understanding a portion of underlying data fromthe data source when displayed at a zoom level at which the data of datasource cannot be viewed completely; determine a minimum size of data tobe displayed; determine an arrangement of data to be displayed; anddisplay on the display device the determined actual and summary dataaccording to the determined minimum size and arrangement of the data tobe displayed.
 2. The system of claim 1 wherein the computer executableinstructions further cause the system to detect a rate of zoom in the atleast one zooming action.
 3. The system of claim 1 wherein the computerexecutable instructions further cause the system to modify the displayfrom actual data from the data source to a summary of the data in thedata source.
 4. The system of claim 3 wherein the summary data is basedon meta data for the data source and not the actual data of the datasource.
 5. The system of claim 1 wherein the computer executableinstructions further cause the system to reorder the data in response tozooming action.
 6. The system of claim 1 wherein the computer executableinstructions further cause the system to remove at least a portion ofthe data from the display in response to the zooming action.
 7. Thesystem of claim 1 wherein the data source is a table, the table havingrows, columns and cells, each cell containing data, the table furtherhaving headers.
 8. The system of claim 7 wherein the computer executableinstructions further cause the system to: track interactions with thecells in the table; and reorder the display based on the interactionswith the cells.
 9. The system of claim 7 wherein the computer executableinstructions further cause the system to determine a minimum cell sizefor a cell that can be displayed on the display.
 10. The system of claim9 wherein the computer executable instructions further cause the systemto display summary data when a requested zoom level prevents displayingat least one of the cells at the minimum cell size.
 11. The system ofclaim 10 wherein the summary data is presented in a format differentfrom a format of the data source.
 12. The system of claim 8 wherein thecomputer executable instructions further cause the system to display theheaders as the display wherein the headers are displayed as a table andthe display does not include any of the cells.
 13. A method fordisplaying data from a data source on a display device comprising:displaying on the display device data from the data source at a firstzoom level; receiving an indication of a change of the zoom level fromthe first zoom level to a second zoom level; determining whether thechange of the zoom level is a zoom in or a zoom out; identifyingcontextual information from the data source, the identified contextualinformation including at least content of the data source, size of thedata source, dimensions of the display, and information in the datasource that enables understanding a portion of underlying data from thedata source when displayed at a zoom level at which the data of datasource cannot be viewed completely; based on the first zoom level, thesecond zoom level, and on the identified contextual information:determining an amount of actual data to display; determining an amountof summary data to display, the summary data derived from a portion ofactual data but displayed in lieu of the portion of actual data and thesummary data determined at least in part from the information in thedata source that enables understanding a portion of underlying data fromthe data source when displayed at a zoom level at which the data of datasource cannot be viewed completely; determining a minimum size ofdisplayed content that is to be displayed; determining a minimum size ofdata to be displayed; determining an arrangement of data to bedisplayed; determining how the display of the data should be modified toeffect the second zoom level; and modifying the display of the data bychanging at least a portion of the display such that the data, includingthe determined actual and summary data, is displayed at the second zoomlevel according to the determined minimum size and arrangement of thedata to be displayed.
 14. The method of claim 13 wherein modifyingcomprises reordering the data in the display.
 15. The method of claim 13wherein modifying comprises presenting a summary of the data from thedata source.
 16. The method of claim 13 wherein modifying comprisingpresenting the data source in a format different from an original formatof the data source.
 17. The method of claim 13 wherein modifyingcomprises displaying summary data when the second zoom level is a zoomlevel that prevents the data from being readable and displaying datawhen the second zoom level is a zoom level that allows the data to bereadable.
 18. The method of claim 17 wherein modifying the displayfurther comprises accessing a profile and modifying the display at leastbased on a portion of information contained in the profile.
 19. Acomputer readable storage medium comprising computer executableinstructions that when executed by a computer having at least oneprocessor cause the computer to: render data from a data source at afirst zoom level as a display on a display device; monitor interactionswith the data source; detect a request to change the first zoom level toa second zoom level; determine whether the change in zoom level is azoom in or a zoom out; identify contextual information in the datasource, the identified contextual information including at least acontent of the data source, size of the data source, dimensions of thedisplay, and information in the data source that enables understanding aportion of underlying data from the data source when displayed at a zoomlevel at which the data of data source cannot be viewed completely;based on the first zoom level, the second zoom level, and on theidentified contextual information: determine an amount of actual data todisplay; determine a minimum size of displayed content that is to bedisplayed; determine an amount of summary data to display, the summarydata derived from a portion of actual data but displayed in lieu of theportion of actual data and the summary data determined at least in partfrom the information in the data source that enables understanding aportion of underlying data from the data source when displayed at a zoomlevel at which the data of data source cannot be viewed completely;determine a minimum size of data to be displayed; determine anarrangement of data to be displayed; modify the display based at leaston a portion of the interactions and the identified contextualinformation such that the modified display presents data from the datasource, including the determined actual and summary data, at the secondzoom level according to the determined minimum size and arrangement ofthe data to be displayed; and render the modified display on the displaydevice.
 20. The computer readable storage medium of claim 19 whereinmodifying the display further presents a summary of the data of the datasource and the amount of actual data to display is zero.